﻿#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);

$UA   = LWP::UserAgent->new();
$page = "http://www.example.com/upload.aspx";

# Nazwa tego pliku składa się z 255 liter „A” i rozszerzenia .txt.
$file259chars = "A" x 255 . ".txt";
@IllegalFiles = (
    "a:b.txt",    # Dwukropek w nazwie pliku jest niedozwolony w większości systemów operacyjnych.
    "a;b.txt",    # Średnik jest niezalecany w większości systemów operacyjnych.
                  # W starszych systemach plików nazwy dłuższe niż 64 znaki są niedozwolone.
    "123456789012345678901234567890123456789012345678900123456.txt",
    "File.",       # W systemie Windows nie są dozwolone nazwy plików zakończone kropką.
    "CON",         # Nazwa zarezerwowana w systemie Windows.
    "a/b.txt",     # Czy przesłanie takiej nazwy spowoduje utworzenie pliku o nazwie b.txt?
    "a\\b.txt",    # Jakie skutki wywoła przesłanie takiej nazwy pliku?
    "a&b.txt",     # Znak ampersand może zostać zinterpretowany przez system operacyjny.
    "a\%b.txt",    # Symbol procenta w systemie Windows jest znacznikiem zmiennych.
    $file259chars
);

foreach $fileName (@IllegalFiles) {
    $req = HTTP::Request::Common::POST(
        "$page",
        Content_Type => 'form-data',
        Content      => [
           myFile => [
               'C:\TEMP\TESTFILE.TXT', $fileName,
               "Content-Type" => "image/jpeg"
           ],
           Submit => 'Prześlij plik',
       ]
   );

    $resp = $UA->request($req);
}
